package com.hefeng.unit.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hefeng.unit.domain.GyDevice;
import org.apache.ibatis.annotations.Param;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * 设备信息表;(gy_device)表服务接口
 * @author : http://www.chiner.pro
 * @date : 2022-11-29
 */
@Transactional
public interface GyDeviceService extends IService<GyDevice> {
    
    /** 
     * 通过ID查询单条数据 
     *
     * @param deviceId 主键
     * @return 实例对象
     */
    GyDevice queryById(Integer deviceId);
    
    /**
     * 分页查询
     *
     * @param gyDevice 筛选条件
     * @param
     * @param
     * @return
     */
    Page<GyDevice> paginQuery(GyDevice gyDevice);
    /** 
     * 新增数据
     *
     * @param gyDevice 实例对象
     * @return 实例对象
     */
    Map<String,Object> insert(GyDevice gyDevice);
    /** 
     * 更新数据
     *
     * @param gyDevice 实例对象
     * @return 实例对象
     */
    Map<String,Object> update(List<GyDevice> gyDevice);
    /** 
     * 通过主键删除数据
     *
     * @param deviceId 主键
     * @return 是否成功
     */
    Map<String,Object> deleteById(String deviceId);

    /**
     * 根据userid获取设备状态数量
     * @param userId
     * @return
     */
    List<Map> quantity(@Param("userId") String userId);

    /**
     * 独立式新增设备
     * @param gyDevice
     * @return
     */
    Map<String,Object> independent(GyDevice gyDevice);


    /**
     * 根据用户id获取主机列表
     * @param userId
     * @return
     */
    List<Map> listT(@Param("userId") String userId,@Param("isHost") String isHost);


    int update(@Param("deviceId") String deviceId);



}